// This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // OPC client and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-CSharp . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. using System; using OpcLabs.EasyOpc.UA; using OpcLabs.EasyOpc.UA.OperationModel; namespace UADocExamples._EasyUAClient { class PullDataChangeNotification { public static void Main1() { UAEndpointDescriptor endpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer"; // or "http://opcua.demo-this.com:51211/UA/SampleServer" (currently not supported) // or "https://opcua.demo-this.com:51212/UA/SampleServer/" // Instantiate the client object // In order to use event pull, you must set a non-zero queue capacity upfront. var client = new EasyUAClient { PullDataChangeNotificationQueueCapacity = 1000 }; Console.WriteLine("Subscribing..."); client.SubscribeDataChange(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10853", 1000); Console.WriteLine("Processing data change events for 1 minute..."); int endTick = Environment.TickCount + 60 * 1000; do { EasyUADataChangeNotificationEventArgs eventArgs = client.PullDataChangeNotification(2 * 1000); if (!(eventArgs is null)) // Handle the notification event Console.WriteLine(eventArgs); } while (Environment.TickCount < endTick); Console.WriteLine("Unsubscribing..."); client.UnsubscribeAllMonitoredItems(); } } }
# This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in PowerShell on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-PowerShell . # Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own # a commercial license in order to use Online Forums, and we reply to every post. #requires -Version 5.1 using namespace OpcLabs.EasyOpc.UA # The path below assumes that the current directory is [ProductDir]/Examples-NET/PowerShell/Windows . Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcUA.dll" Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcUAComponents.dll" [UAEndpointDescriptor]$endpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" # or "http://opcua.demo-this.com:51211/UA/SampleServer" (currently not supported) # or "https://opcua.demo-this.com:51212/UA/SampleServer/" # Instantiate the client object. $client = New-Object EasyUAClient # In order to use event pull, you must set a non-zero queue capacity upfront. $client.PullDataChangeNotificationQueueCapacity = 1000 Write-Host "Subscribing..." $client.SubscribeDataChange($endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10853", 1000) Write-Host "Processing data change events for 1 minute..." $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() while ($stopwatch.Elapsed.TotalSeconds -lt 60) { $eventArgs = $client.PullDataChangeNotification(2*1000) if ($eventArgs -ne $null) { # Handle the notification event Write-Host $eventArgs } } Write-Host "Unsubscribing..." $client.UnsubscribeAllMonitoredItems() Write-Host "Finished."
' This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . ' OPC client and subscriber examples in VB.NET on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBNET . ' Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own ' a commercial license in order to use Online Forums, and we reply to every post. Imports OpcLabs.EasyOpc.UA Imports OpcLabs.EasyOpc.UA.OperationModel Namespace _EasyUAClient Friend Class PullDataChangeNotification Public Shared Sub Main1() ' Define which server we will work with. Dim endpointDescriptor As UAEndpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" ' or "http://opcua.demo-this.com:51211/UA/SampleServer" (currently not supported) ' or "https://opcua.demo-this.com:51212/UA/SampleServer/" ' Instantiate the client object Dim client = New EasyUAClient() ' In order to use event pull, you must set a non-zero queue capacity upfront. client.PullDataChangeNotificationQueueCapacity = 1000 Console.WriteLine("Subscribing...") client.SubscribeDataChange( endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10853", 1000) ' or "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer" Console.WriteLine("Processing data change events for 1 minute...") Dim endTick As Integer = Environment.TickCount + 60 * 1000 Do Dim eventArgs As EasyUADataChangeNotificationEventArgs = client.PullDataChangeNotification(2 * 1000) If Not eventArgs Is Nothing Then ' Handle the notification event Console.WriteLine(eventArgs) End If Loop While Environment.TickCount < endTick End Sub End Class End Namespace
// This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. class procedure PullDataChangeNotification.Main; var Client: EasyUAClient; EndTick: Cardinal; EventArgs: _EasyUADataChangeNotificationEventArgs; begin // Instantiate the client object Client := CoEasyUAClient.Create; // In order to use event pull, you must set a non-zero queue capacity upfront. Client.PullDataChangeNotificationQueueCapacity := 1000; WriteLn('Subscribing...'); Client.SubscribeDataChange( //'http://opcua.demo-this.com:51211/UA/SampleServer', 'opc.tcp://opcua.demo-this.com:51210/UA/SampleServer', 'nsu=http://test.org/UA/Data/ ;i=10853', 1000); WriteLn('Processing data change events for 1 minute...'); EndTick := GetTickCount + 60*1000; while GetTickCount < EndTick do begin EventArgs := Client.PullDataChangeNotification(2*1000); if EventArgs <> nil then // Handle the notification event WriteLn(EventArgs.ToString); end; WriteLn('Unsubscribing...'); Client.UnsubscribeAllMonitoredItems; WriteLn('Finished.'); end;
// This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. var Client = new ActiveXObject("OpcLabs.EasyOpc.UA.EasyUAClient"); // In order to use event pull, you must set a non-zero queue capacity upfront. Client.PullDataChangeNotificationQueueCapacity = 1000; WScript.Echo("Subscribing..."); Client.SubscribeDataChange( //"http://opcua.demo-this.com:51211/UA/SampleServer", "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer", "nsu=http://test.org/UA/Data/ ;i=10853", 1000); WScript.Echo("Processing data change events for 1 minute..."); var endTime = new Date().getTime() + 60*1000 do { var EventArgs = Client.PullDataChangeNotification(2*1000); if (EventArgs !== null) { // Handle the notification event WScript.Echo(EventArgs); } } while(new Date().getTime() < endTime);
// This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // OPC client and subscriber examples in Object Pascal (Delphi) on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-OP . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. class procedure PullDataChangeNotification.Main; var Client: OpcLabs_EasyOpcUA_TLB._EasyUAClient; EndTick: Cardinal; EventArgs: _EasyUADataChangeNotificationEventArgs; begin // Instantiate the client object Client := CoEasyUAClient.Create; // In order to use event pull, you must set a non-zero queue capacity upfront. Client.PullDataChangeNotificationQueueCapacity := 1000; WriteLn('Subscribing...'); Client.SubscribeDataChange( //'http://opcua.demo-this.com:51211/UA/SampleServer', //'https://opcua.demo-this.com:51212/UA/SampleServer/', 'opc.tcp://opcua.demo-this.com:51210/UA/SampleServer', 'nsu=http://test.org/UA/Data/ ;i=10853', 1000); WriteLn('Processing data change events for 1 minute...'); EndTick := Ticks + 60*1000; while Ticks < EndTick do begin EventArgs := Client.PullDataChangeNotification(2*1000); if EventArgs <> nil then // Handle the notification event WriteLn(EventArgs.ToString); end; WriteLn('Unsubscribing...'); Client.UnsubscribeAllMonitoredItems; WriteLn('Finished.'); end;
// This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // OPC client and subscriber examples in PHP on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-PHP . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. $Client = new COM("OpcLabs.EasyOpc.UA.EasyUAClient"); // In order to use event pull, you must set a non-zero queue capacity upfront. $Client->PullDataChangeNotificationQueueCapacity = 1000; print "Subscribing...\n"; $Client->SubscribeDataChange( //"http://opcua.demo-this.com:51211/UA/SampleServer", "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer", "nsu=http://test.org/UA/Data/ ;i=10853", 1000); print "Processing data change events for 1 minute...\n"; $endTime = time() + 60; do { $EventArgs = $Client->PullDataChangeNotification(2*1000); if (!is_null($EventArgs)) { // Handle the notification event print $EventArgs->ToString(); print "\n"; } } while (time() < $endTime);
// This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. mle_outputtext.Text = "" // Instantiate the client object OLEObject client client = CREATE OLEObject client.ConnectToNewObject("OpcLabs.EasyOpc.UA.EasyUAClient") // In order to use event pull, you must set a non-zero queue capacity upfront. client.PullDataChangeNotificationQueueCapacity = 1000 mle_outputtext.Text = mle_outputtext.Text + "Subscribing data changes..." + "~r~n" client.SubscribeDataChange("http://opcua.demo-this.com:51211/UA/SampleServer", "nsu=http://test.org/UA/Data/ ;i=10853", 1000) mle_outputtext.Text = mle_outputtext.Text + "Processing data change events for 1 minute..." + "~r~n" Time endTime = RelativeTime(Now(), 60) DO OLEObject eventArgs eventArgs = client.PullDataChangeNotification(2*1000) IF NOT IsNull(eventArgs) THEN // Handle the notification event mle_outputtext.Text = mle_outputtext.Text + eventArgs.DisplayString + "~r~n" END IF LOOP WHILE Now() < endTime mle_outputtext.Text = mle_outputtext.Text + "~r~n" mle_outputtext.Text = mle_outputtext.Text + "Finished." + "~r~n"
# This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. # # The Python for Windows (pywin32) extensions package is needed. Install it using "pip install pypiwin32". # CAUTION: We now recommend using Python.NET package instead. Full set of examples with Python.NET is available! # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . import time import win32com.client # Instantiate the client object client = win32com.client.Dispatch('OpcLabs.EasyOpc.UA.EasyUAClient') # In order to use event pull, you must set a non-zero queue capacity upfront. client.PullDataChangeNotificationQueueCapacity = 1000 print('Subscribing...') client.SubscribeDataChange('opc.tcp://opcua.demo-this.com:51210/UA/SampleServer', 'nsu=http://test.org/UA/Data/ ;i=10853', 1000) print('Processing data change events for 1 minute...') endTime = time.time() + 60 while time.time() < endTime: eventArgs = client.PullDataChangeNotification(2*1000) if eventArgs is not None: # Handle the notification event print(eventArgs)
REM This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. REM REM Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . REM OPC client and subscriber examples in Visual Basic on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VB . REM Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own REM a commercial license in order to use Online Forums, and we reply to every post. Public Sub PullDataChangeNotification_Main_Command_Click() OutputText = "" Dim eventArgs As EasyUADataChangeNotificationEventArgs ' Instantiate the client object Dim Client As New EasyUAClient ' In order to use event pull, you must set a non-zero queue capacity upfront. Client.PullDataChangeNotificationQueueCapacity = 1000 OutputText = OutputText & "Subscribing..." & vbCrLf Call Client.SubscribeDataChange("opc.tcp://opcua.demo-this.com:51210/UA/SampleServer", "nsu=http://test.org/UA/Data/ ;i=10853", 1000) OutputText = OutputText & "Processing data changed notification events for 1 minute..." & vbCrLf Dim EndTick As Long EndTick = GetTickCount + 60000 While GetTickCount < EndTick Set eventArgs = Client.PullDataChangeNotification(2 * 1000) If Not eventArgs Is Nothing Then ' Handle the notification event OutputText = OutputText & eventArgs & vbCrLf End If Wend OutputText = OutputText & "Unsubscribing..." & vbCrLf Client.UnsubscribeAllMonitoredItems OutputText = OutputText & "Finished." & vbCrLf End Sub
Rem This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. Rem Rem Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Rem OPC client and subscriber examples in VBScript on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBScript . Rem Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own Rem a commercial license in order to use Online Forums, and we reply to every post. Option Explicit ' Instantiate the client object Dim Client: Set Client = CreateObject("OpcLabs.EasyOpc.UA.EasyUAClient") ' In order to use event pull, you must set a non-zero queue capacity upfront. Client.PullDataChangeNotificationQueueCapacity = 1000 WScript.Echo "Subscribing..." Client.SubscribeDataChange "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer", "nsu=http://test.org/UA/Data/ ;i=10853", 1000 WScript.Echo "Processing data change events for 1 minute..." Dim endTime: endTime = Now() + 60*(1/24/60/60) Do Dim EventArgs: Set EventArgs = Client.PullDataChangeNotification(2*1000) If Not (EventArgs Is Nothing) Then ' Handle the notification event WScript.Echo EventArgs End If Loop While Now() < endTime
* This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. DECLARE INTEGER GetTickCount IN kernel32 THISFORM.OutputEdit.Value = "" * Instantiate the client object. oClient = CREATEOBJECT("OpcLabs.EasyOpc.UA.EasyUAClient") * In order to use event pull, you must set a non-zero queue capacity upfront. oClient.PullDataChangeNotificationQueueCapacity = 1000 THISFORM.OutputEdit.Value = THISFORM.OutputEdit.Value + "Subscribing..." + CHR(13) + CHR(10) oClient.SubscribeDataChange("http://opcua.demo-this.com:51211/UA/SampleServer", "nsu=http://test.org/UA/Data/ ;i=10853", 1000) THISFORM.OutputEdit.Value = THISFORM.OutputEdit.Value + "Processing data change notification events for 1 minute..." + CHR(13) + CHR(10) EndTick = GetTickCount() + 60000 DO WHILE GetTickCount() < EndTick oEventArgs = oClient.PullDataChangeNotification(2*1000) IF NOT ISNULL(oEventArgs) THISFORM.OutputEdit.Value = THISFORM.OutputEdit.Value + oEventArgs.DisplayString + CHR(13) + CHR(10) ENDIF ENDDO THISFORM.OutputEdit.Value = THISFORM.OutputEdit.Value + "Unsubscribing..." + CHR(13) + CHR(10) oClient.UnsubscribeAllMonitoredItems() THISFORM.OutputEdit.Value = THISFORM.OutputEdit.Value + "Finished." + CHR(13) + CHR(10)
# This example shows how to subscribe to changes of a single monitored item, pull events, and display each change. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own # a commercial license in order to use Online Forums, and we reply to every post. # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc import time # Import .NET namespaces. from OpcLabs.EasyOpc.UA import * from OpcLabs.EasyOpc.UA.OperationModel import * # Instantiate the client object client = EasyUAClient() # In order to use event pull, you must set a non-zero queue capacity upfront. client.PullDataChangeNotificationQueueCapacity = 1000 print('Subscribing...') IEasyUAClientExtension.SubscribeDataChange(client, UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:51210/UA/SampleServer'), UANodeDescriptor('nsu=http://test.org/UA/Data/ ;i=10853'), 1000) print('Processing data change events for 1 minute...') endTime = time.time() + 60 while time.time() < endTime: eventArgs = IEasyUAClientExtension.PullDataChangeNotification(client, 2*1000) if eventArgs is not None: # Handle the notification event print(eventArgs)
Copyright © 2004-2024 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Documentation Home, Send Feedback. Resources: Knowledge Base, Product Downloads. Technical support: Online Forums, FAQ.Missing some example? Ask us for it on our Online Forums! You do not have to own a commercial license in order to use Online Forums, and we reply to every post.